using System;
using System.Linq;
using System.Linq.Expressions;

namespace Home.Site.Models.DataLayer
{
    public interface IPhotoAlbumRepository : IDisposable
    {
        IQueryable<PhotoAlbum> All { get; }
        IQueryable<PhotoAlbum> AllIncluding(params Expression<Func<PhotoAlbum, object>>[] includeProperties);
        PhotoAlbum Find(int id);
        void InsertOrUpdate(PhotoAlbum photoalbum);
        void Delete(int id);
        void Save();
        IQueryable<PhotoAlbum> GetAlbums();
        PhotoAlbum LastAlbum();
        IQueryable<PhotoAlbum> GetPhotoAlbumsByUser(string userName);
    }
}